package com.ruoyi.system.service;

/**
 * @ClassName OssUtil
 * @Description
 * @Author sizegang
 * @Date2024/12/12 23:24
 **/

import com.aliyun.oss.model.PutObjectRequest;
import com.ruoyi.system.config.OSSConfig;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * OSS 文件管理服务
 */
@Log4j2
@Component
public class OssUtil {

    /** 自动注入 OssConfig 类型的 Bean */
    @Autowired
    private OSSConfig ossConfig;


    /** 定义存储桶名称，方便在上传和下载时引用 */
    @Value("${aliyun.oss.bucketName}")
    private String bucketName;

    @Value("${aliyun.oss.endPoint}")
    private String endPoint;

    public String uploadFile(MultipartFile file) throws IOException {
        // 文件名，可以根据实际情况进行修改
        String fileName = file.getOriginalFilename();

        // 创建PutObjectRequest对象。
        PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileName, file.getInputStream());

        // 上传文件。
        ossConfig.init().putObject(putObjectRequest);

        // 文件上传后的OSS地址
        String fileUrl = "https://" + bucketName + "." + endPoint + "/" + fileName;

        return fileUrl;
    }
}